medusa-v2-plugin-wishlist
Version:
A powerful wishlist plugin for Medusa, enabling customers to save and manage their favorite products seamlessly
33 lines • 3.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GET = GET;
const utils_1 = require("@medusajs/framework/utils");
const jsonwebtoken_1 = require("jsonwebtoken");
async function GET(req, res) {
if (!req.publishable_key_context?.sales_channel_ids.length) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "At least one sales channel ID is required to be associated with the publishable API key in the request header.");
}
const decodedToken = (0, jsonwebtoken_1.decode)(req.params.token);
if (!decodedToken.wishlist_id) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Invalid token");
}
const query = req.scope.resolve("query");
const { data } = await query.graph({
entity: "wishlist",
fields: ["*", "items.*", "items.product_variant.*"],
filters: {
id: decodedToken.wishlist_id,
},
});
if (!data.length) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "No wishlist found");
}
if (data[0].sales_channel_id !==
req.publishable_key_context.sales_channel_ids[0]) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Wishlist does not belong to the request's sales channel");
}
return res.json({
wishlist: data[0],
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9bdG9rZW5dL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsa0JBeUNDO0FBNUNELHFEQUF3RDtBQUN4RCwrQ0FBa0Q7QUFFM0MsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUF1QixFQUFFLEdBQW1CO0lBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsZ0hBQWdILENBQ2pILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSxxQkFBTSxFQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFlLENBQUM7SUFFNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQztRQUNuRCxPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUUsWUFBWSxDQUFDLFdBQVc7U0FDN0I7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUNFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7UUFDeEIsR0FBRyxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUNoRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIseURBQXlELENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDbEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9